{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Imports\n",
    "\n",
    "Import all the modules and functionalities we need."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "%matplotlib inline\n",
    "\n",
    "# Import standard libraries.\n",
    "import os\n",
    "\n",
    "# Import third party libraries.\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import seaborn as sns\n",
    "from statsmodels.stats.multitest import multipletests\n",
    "\n",
    "# Import custom libraries/scripts.\n",
    "import annotations\n",
    "import helpers"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Loading data\n",
    "\n",
    "Fetch all our relevant data for the current analysis."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Set working contants.\n",
    "EXPERIMENTS_PATH = r'E:\\Miguel\\PhD\\Results\\Competition\\DL\\Four-Arena Setup\\sensory_mutants\\processed'\n",
    "FPS = 60\n",
    "N_MINUTES = 45\n",
    "N_FRAMES = N_MINUTES * 60 * FPS\n",
    "INK = 'black'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Set figure configurations.\n",
    "sns.set(\n",
    "        context='paper',\n",
    "        style='ticks',\n",
    "        font='sans-serif',\n",
    "        font_scale=1.0, \n",
    "        rc={\n",
    "            'axes.axisbelow': True,\n",
    "            'axes.edgecolor': INK,\n",
    "            'axes.facecolor': 'white' if INK=='black' else 'black',\n",
    "            'axes.grid': False,\n",
    "            'axes.labelcolor': INK,\n",
    "            'axes.labelsize': 13.0,\n",
    "            'axes.labelweight': 'normal',\n",
    "            'axes.linewidth': 1.0,\n",
    "            'axes.spines.left': True,\n",
    "            'axes.spines.bottom': True,\n",
    "            'axes.spines.top': False,\n",
    "            'axes.spines.right': False,\n",
    "            'axes.titlepad': 15.0,\n",
    "            'axes.titlesize': 20.0,\n",
    "            'axes.titleweight': 'bold',\n",
    "            'figure.facecolor': 'white' if INK=='black' else 'black',\n",
    "            'figure.figsize': [8.0, 4.0],\n",
    "            'figure.titlesize': 30.0,\n",
    "            'figure.titleweight': 'bold',\n",
    "            'font.family': ['sans-serif'],\n",
    "            'font.sans-serif': ['Arial'],\n",
    "            'legend.frameon': False,\n",
    "            'legend.fontsize': 11.0,\n",
    "            'lines.color': INK,\n",
    "            'lines.linewidth': 1.0,\n",
    "            'patch.edgecolor': INK,\n",
    "            'savefig.dpi': 300,\n",
    "            'savefig.format': 'png',\n",
    "            'savefig.bbox': 'tight',\n",
    "            'savefig.transparent': True,\n",
    "            'text.color': INK,\n",
    "            'text.usetex': False,\n",
    "            'xtick.color': INK,\n",
    "            'xtick.direction': 'out',\n",
    "            'xtick.labelsize': 12.0,\n",
    "            'xtick.major.pad': 5.0,\n",
    "            'xtick.major.size': 0.0,\n",
    "            'xtick.major.width': 1.0,\n",
    "            'xtick.minor.size': 0.0,\n",
    "            'xtick.minor.width': 0.4,\n",
    "            'ytick.color': INK,\n",
    "            'ytick.direction': 'out',\n",
    "            'ytick.labelsize': 12.0,\n",
    "            'ytick.major.pad': 5.0,\n",
    "            'ytick.major.size': 3.0,\n",
    "            'ytick.major.width': 1.0,\n",
    "            'ytick.minor.size': 0.0,\n",
    "            'ytick.minor.width': 0.4\n",
    "           }\n",
    "       )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Folder already exists, skipping.\n"
     ]
    }
   ],
   "source": [
    "# Prepare the Figures folder to save our graphs in.\n",
    "savepath = os.path.join(r'C:\\Users\\Miguel\\Desktop\\paper_data', 'paper_figures', 'figure3')\n",
    "try:\n",
    "    os.makedirs(savepath)\n",
    "    print('New folder created.')\n",
    "except FileExistsError:\n",
    "    print('Folder already exists, skipping.')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Paths to conditions:\n",
      " ['E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\aristaless', 'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\DL', 'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\Ir8a_Ir25a_ORCO_Gr63a', 'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\NorpA', 'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\PoxN1', 'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\PoxN2']\n"
     ]
    }
   ],
   "source": [
    "# Set the conditions to analyze.\n",
    "condition_order = ['DL', 'PoxN1', 'PoxN2', 'aristaless', 'NorpA', 'Ir8a_Ir25a_ORCO_Gr63a']\n",
    "conditions = [item.path for item in os.scandir(EXPERIMENTS_PATH) if item.name in condition_order]\n",
    "print('Paths to conditions:\\n', conditions)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['video_2019-02-26T14_04_30_arena3', 'video_2018-10-30T14_27_48_arena4', 'video_2019-01-22T14_37_51_arena3', 'video_2018-11-08T15_53_03_arena1', 'video_2018-11-20T15_54_06_arena1', 'video_2019-01-10T15_20_27_arena4', 'video_2019-01-11T14_09_38_arena2']\n",
      "7\n"
     ]
    }
   ],
   "source": [
    "# Create a list of all the experiments that we DO NOT want to analyze.\n",
    "intruders = []\n",
    "for condition_path in conditions:\n",
    "    for file in os.listdir(condition_path):\n",
    "        if 'quality_control' in file:\n",
    "\n",
    "            # Read the quality.csv file to check which experiments are usable for analysis.\n",
    "            quality_file = os.path.join(condition_path, file)\n",
    "            quality_df = pd.read_csv(quality_file, usecols=[0,1], index_col=0)\n",
    "            quality_df = quality_df[quality_df['is_usable'] == False].index.values\n",
    "\n",
    "            for value in quality_df:\n",
    "                intruders.append(value)\n",
    "\n",
    "print(intruders)             \n",
    "print(len(intruders))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\t\n",
      " aristaless\n",
      "Copulation too short: video_2019-02-04T15_15_41_arena3\n",
      "Copulation too short: video_2019-02-07T14_18_30_arena4\n",
      "Copulation too short: video_2019-02-22T14_13_46_arena2\n",
      "Copulation too short: video_2019-02-26T14_04_30_arena2\n",
      "\t\n",
      " DL\n",
      "Copulation interrupted: video_2018-11-05T13_29_41_arena2\n",
      "Copulation too short: video_2019-02-12T14_18_45_arena3\n",
      "\t\n",
      " Ir8a_Ir25a_ORCO_Gr63a\n",
      "Copulation interrupted: video_2018-10-29T13_34_11_arena1\n",
      "Copulation interrupted: video_2018-10-29T14_30_25_arena2\n",
      "Copulation interrupted: video_2018-11-08T15_53_03_arena4\n",
      "Copulation interrupted: video_2018-11-20T15_54_06_arena2\n",
      "Copulation too short: video_2018-11-23T13_16_41_arena4\n",
      "Copulation interrupted: video_2019-01-23T13_53_58_arena4\n",
      "\t\n",
      " NorpA\n",
      "Copulation too short: video_2018-11-08T14_54_53_arena1\n",
      "Copulation too short: video_2018-11-26T16_15_44_arena2\n",
      "\t\n",
      " PoxN1\n",
      "\t\n",
      " PoxN2\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "{'DL': ['E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\DL\\\\video_2018-10-25T13_42_23_arena4',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\DL\\\\video_2018-10-25T14_33_07_arena3',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\DL\\\\video_2018-10-25T15_22_02_arena1',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\DL\\\\video_2018-10-25T16_11_07_arena3',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\DL\\\\video_2018-10-29T13_34_11_arena3',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\DL\\\\video_2018-10-29T14_30_25_arena4',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\DL\\\\video_2018-10-29T15_23_04_arena1',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\DL\\\\video_2018-10-29T15_23_04_arena2',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\DL\\\\video_2018-10-30T13_33_46_arena2',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\DL\\\\video_2018-10-30T15_21_16_arena4',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\DL\\\\video_2018-11-08T13_15_26_arena4',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\DL\\\\video_2018-11-08T15_53_03_arena2',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\DL\\\\video_2018-11-08T15_53_03_arena3',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\DL\\\\video_2018-11-09T14_24_57_arena4',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\DL\\\\video_2018-11-09T16_10_10_arena1',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\DL\\\\video_2018-11-12T13_24_50_arena2',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\DL\\\\video_2018-11-12T16_04_41_arena4',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\DL\\\\video_2018-11-13T15_07_14_arena3',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\DL\\\\video_2018-11-15T13_24_06_arena4',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\DL\\\\video_2018-11-15T15_07_55_arena1',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\DL\\\\video_2018-11-16T16_03_35_arena3',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\DL\\\\video_2018-11-19T13_24_37_arena2',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\DL\\\\video_2018-11-22T13_23_26_arena4',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\DL\\\\video_2019-01-07T13_25_24_arena3',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\DL\\\\video_2019-01-07T14_15_27_arena4',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\DL\\\\video_2019-01-08T14_28_18_arena2',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\DL\\\\video_2019-01-10T13_33_34_arena1',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\DL\\\\video_2019-01-21T13_49_00_arena2',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\DL\\\\video_2019-01-22T15_30_10_arena1',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\DL\\\\video_2019-01-23T13_53_58_arena1',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\DL\\\\video_2019-01-28T14_28_36_arena1',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\DL\\\\video_2019-01-31T13_34_34_arena3',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\DL\\\\video_2019-01-31T15_10_22_arena1',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\DL\\\\video_2019-02-04T13_23_14_arena1',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\DL\\\\video_2019-02-04T15_15_41_arena4',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\DL\\\\video_2019-02-05T14_28_35_arena2',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\DL\\\\video_2019-02-07T14_18_30_arena2',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\DL\\\\video_2019-02-07T16_17_30_arena1',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\DL\\\\video_2019-02-08T13_28_42_arena2',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\DL\\\\video_2019-02-11T13_24_09_arena3',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\DL\\\\video_2019-02-11T14_25_15_arena1',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\DL\\\\video_2019-02-12T13_18_39_arena2',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\DL\\\\video_2019-02-14T14_07_10_arena3',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\DL\\\\video_2019-02-14T15_15_28_arena2',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\DL\\\\video_2019-02-18T13_35_00_arena1',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\DL\\\\video_2019-02-18T14_58_21_arena2',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\DL\\\\video_2019-02-18T14_58_21_arena3',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\DL\\\\video_2019-02-19T13_31_50_arena1',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\DL\\\\video_2019-02-19T14_29_27_arena3',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\DL\\\\video_2019-02-21T14_29_51_arena2',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\DL\\\\video_2019-02-21T15_27_33_arena2',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\DL\\\\video_2019-02-22T13_22_20_arena1',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\DL\\\\video_2019-02-22T15_05_09_arena4',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\DL\\\\video_2019-02-25T14_15_16_arena2',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\DL\\\\video_2019-02-25T16_00_43_arena1',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\DL\\\\video_2019-02-26T13_16_40_arena2',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\DL\\\\video_2019-02-26T14_04_30_arena1'],\n",
       " 'PoxN1': ['E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\PoxN1\\\\video_2018-11-05T14_25_33_arena1',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\PoxN1\\\\video_2018-11-08T14_54_53_arena3',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\PoxN1\\\\video_2018-11-09T13_32_43_arena2',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\PoxN1\\\\video_2018-11-09T15_15_47_arena4',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\PoxN1\\\\video_2018-11-09T16_10_10_arena3',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\PoxN1\\\\video_2018-11-12T14_18_04_arena3',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\PoxN1\\\\video_2018-11-12T15_11_17_arena1',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\PoxN1\\\\video_2018-11-13T13_20_38_arena2',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\PoxN1\\\\video_2018-11-13T14_12_04_arena4',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\PoxN1\\\\video_2018-11-13T15_59_40_arena2',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\PoxN1\\\\video_2018-11-15T13_24_06_arena3',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\PoxN1\\\\video_2018-11-15T14_14_38_arena2',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\PoxN1\\\\video_2018-11-16T14_16_30_arena1',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\PoxN1\\\\video_2018-11-16T15_13_19_arena2',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\PoxN1\\\\video_2018-11-19T15_13_59_arena2',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\PoxN1\\\\video_2018-11-19T16_07_25_arena4',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\PoxN1\\\\video_2018-11-22T15_13_22_arena3',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\PoxN1\\\\video_2018-11-23T13_16_41_arena3',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\PoxN1\\\\video_2018-11-23T14_06_32_arena2',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\PoxN1\\\\video_2018-11-23T15_02_48_arena4',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\PoxN1\\\\video_2018-11-26T14_23_16_arena3',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\PoxN1\\\\video_2019-01-07T13_25_24_arena2',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\PoxN1\\\\video_2019-01-10T15_20_27_arena3',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\PoxN1\\\\video_2019-01-21T14_42_26_arena3',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\PoxN1\\\\video_2019-01-24T13_41_39_arena2',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\PoxN1\\\\video_2019-01-25T14_42_54_arena4',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\PoxN1\\\\video_2019-01-25T16_37_11_arena1',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\PoxN1\\\\video_2019-01-28T13_29_02_arena2',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\PoxN1\\\\video_2019-01-28T16_23_38_arena1',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\PoxN1\\\\video_2019-01-29T13_47_57_arena2',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\PoxN1\\\\video_2019-01-31T14_23_50_arena4',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\PoxN1\\\\video_2019-02-11T15_21_44_arena3',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\PoxN1\\\\video_2019-02-12T15_09_30_arena4',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\PoxN1\\\\video_2019-02-14T13_20_25_arena1'],\n",
       " 'PoxN2': ['E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\PoxN2\\\\video_2018-11-05T13_29_41_arena3',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\PoxN2\\\\video_2018-11-05T14_25_33_arena4',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\PoxN2\\\\video_2018-11-06T15_23_12_arena2',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\PoxN2\\\\video_2018-11-08T13_15_26_arena2',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\PoxN2\\\\video_2018-11-08T14_05_24_arena3',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\PoxN2\\\\video_2018-11-09T14_24_57_arena1',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\PoxN2\\\\video_2018-11-09T16_10_10_arena2',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\PoxN2\\\\video_2018-11-13T15_59_40_arena3',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\PoxN2\\\\video_2018-11-19T13_24_37_arena1',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\PoxN2\\\\video_2018-11-19T13_24_37_arena4',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\PoxN2\\\\video_2018-11-19T16_07_25_arena3',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\PoxN2\\\\video_2018-11-20T13_17_32_arena2',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\PoxN2\\\\video_2018-11-22T13_23_26_arena3',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\PoxN2\\\\video_2018-11-26T13_22_06_arena3',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\PoxN2\\\\video_2019-01-07T15_09_49_arena2',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\PoxN2\\\\video_2019-01-08T15_26_26_arena1',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\PoxN2\\\\video_2019-01-10T16_14_19_arena1',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\PoxN2\\\\video_2019-01-10T16_14_19_arena4',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\PoxN2\\\\video_2019-01-22T13_46_31_arena3',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\PoxN2\\\\video_2019-01-22T15_30_10_arena4',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\PoxN2\\\\video_2019-01-23T13_53_58_arena3',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\PoxN2\\\\video_2019-01-23T14_43_15_arena1',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\PoxN2\\\\video_2019-01-24T14_36_54_arena4',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\PoxN2\\\\video_2019-01-25T14_42_54_arena3',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\PoxN2\\\\video_2019-01-25T15_47_08_arena4',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\PoxN2\\\\video_2019-01-28T16_23_38_arena3',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\PoxN2\\\\video_2019-01-29T14_34_09_arena4',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\PoxN2\\\\video_2019-02-11T15_21_44_arena4',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\PoxN2\\\\video_2019-02-12T15_09_30_arena1',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\PoxN2\\\\video_2019-02-14T14_07_10_arena4'],\n",
       " 'aristaless': ['E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\aristaless\\\\video_2019-01-31T14_23_50_arena1',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\aristaless\\\\video_2019-01-31T15_10_22_arena3',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\aristaless\\\\video_2019-01-31T15_10_22_arena4',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\aristaless\\\\video_2019-02-01T14_02_23_arena1',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\aristaless\\\\video_2019-02-01T14_55_59_arena2',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\aristaless\\\\video_2019-02-01T14_55_59_arena4',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\aristaless\\\\video_2019-02-01T15_52_47_arena2',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\aristaless\\\\video_2019-02-01T15_52_47_arena3',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\aristaless\\\\video_2019-02-04T13_23_14_arena4',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\aristaless\\\\video_2019-02-04T14_15_37_arena1',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\aristaless\\\\video_2019-02-05T13_34_46_arena1',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\aristaless\\\\video_2019-02-05T13_34_46_arena4',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\aristaless\\\\video_2019-02-07T13_27_20_arena4',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\aristaless\\\\video_2019-02-07T14_18_30_arena1',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\aristaless\\\\video_2019-02-07T16_17_30_arena2',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\aristaless\\\\video_2019-02-08T14_20_28_arena1',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\aristaless\\\\video_2019-02-08T14_20_28_arena4',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\aristaless\\\\video_2019-02-22T13_22_20_arena3',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\aristaless\\\\video_2019-02-22T14_13_46_arena3',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\aristaless\\\\video_2019-02-22T15_05_09_arena1',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\aristaless\\\\video_2019-02-22T15_05_09_arena2',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\aristaless\\\\video_2019-02-22T15_56_18_arena1',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\aristaless\\\\video_2019-02-22T15_56_18_arena2',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\aristaless\\\\video_2019-02-25T15_08_46_arena1',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\aristaless\\\\video_2019-02-25T16_00_43_arena3',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\aristaless\\\\video_2019-02-26T13_16_40_arena1',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\aristaless\\\\video_2019-02-26T15_07_41_arena2'],\n",
       " 'NorpA': ['E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\NorpA\\\\video_2018-10-25T15_22_02_arena4',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\NorpA\\\\video_2018-10-25T16_11_07_arena1',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\NorpA\\\\video_2018-10-30T13_33_46_arena4',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\NorpA\\\\video_2018-11-06T14_29_09_arena2',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\NorpA\\\\video_2018-11-09T13_32_43_arena1',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\NorpA\\\\video_2018-11-12T13_24_50_arena1',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\NorpA\\\\video_2018-11-13T14_12_04_arena2',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\NorpA\\\\video_2018-11-15T16_06_53_arena2',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\NorpA\\\\video_2018-11-16T14_16_30_arena2',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\NorpA\\\\video_2018-11-20T14_12_58_arena1',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\NorpA\\\\video_2018-11-20T15_02_15_arena4',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\NorpA\\\\video_2018-11-20T15_54_06_arena3',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\NorpA\\\\video_2018-11-26T14_23_16_arena1',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\NorpA\\\\video_2019-01-07T14_15_27_arena2',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\NorpA\\\\video_2019-01-08T14_28_18_arena1',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\NorpA\\\\video_2019-01-08T15_26_26_arena2',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\NorpA\\\\video_2019-01-11T14_09_38_arena4',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\NorpA\\\\video_2019-01-11T15_00_11_arena3',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\NorpA\\\\video_2019-01-22T13_46_31_arena1',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\NorpA\\\\video_2019-01-22T16_27_19_arena4',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\NorpA\\\\video_2019-01-23T13_53_58_arena2',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\NorpA\\\\video_2019-01-23T15_56_06_arena4',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\NorpA\\\\video_2019-01-24T16_31_14_arena2',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\NorpA\\\\video_2019-01-25T13_48_17_arena3',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\NorpA\\\\video_2019-01-25T14_42_54_arena1',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\NorpA\\\\video_2019-01-25T14_42_54_arena2',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\NorpA\\\\video_2019-01-25T16_37_11_arena4',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\NorpA\\\\video_2019-01-29T13_47_57_arena1',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\NorpA\\\\video_2019-01-29T16_16_40_arena4',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\NorpA\\\\video_2019-01-31T16_13_39_arena1',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\NorpA\\\\video_2019-02-04T16_09_37_arena4',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\NorpA\\\\video_2019-02-11T13_24_09_arena1',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\NorpA\\\\video_2019-02-12T15_09_30_arena3'],\n",
       " 'Ir8a_Ir25a_ORCO_Gr63a': ['E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\Ir8a_Ir25a_ORCO_Gr63a\\\\video_2018-10-25T13_42_23_arena2',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\Ir8a_Ir25a_ORCO_Gr63a\\\\video_2018-10-25T14_33_07_arena1',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\Ir8a_Ir25a_ORCO_Gr63a\\\\video_2018-10-25T15_22_02_arena3',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\Ir8a_Ir25a_ORCO_Gr63a\\\\video_2018-10-25T16_11_07_arena2',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\Ir8a_Ir25a_ORCO_Gr63a\\\\video_2018-10-30T14_27_48_arena2',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\Ir8a_Ir25a_ORCO_Gr63a\\\\video_2018-11-05T14_25_33_arena3',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\Ir8a_Ir25a_ORCO_Gr63a\\\\video_2018-11-06T15_23_12_arena3',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\Ir8a_Ir25a_ORCO_Gr63a\\\\video_2018-11-12T14_18_04_arena1',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\Ir8a_Ir25a_ORCO_Gr63a\\\\video_2018-11-13T13_20_38_arena3',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\Ir8a_Ir25a_ORCO_Gr63a\\\\video_2018-11-15T16_06_53_arena3',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\Ir8a_Ir25a_ORCO_Gr63a\\\\video_2018-11-19T13_24_37_arena3',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\Ir8a_Ir25a_ORCO_Gr63a\\\\video_2018-11-19T14_19_33_arena2',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\Ir8a_Ir25a_ORCO_Gr63a\\\\video_2018-11-20T13_17_32_arena1',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\Ir8a_Ir25a_ORCO_Gr63a\\\\video_2018-11-23T15_02_48_arena3',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\Ir8a_Ir25a_ORCO_Gr63a\\\\video_2018-11-26T13_22_06_arena1',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\Ir8a_Ir25a_ORCO_Gr63a\\\\video_2018-11-26T14_23_16_arena2',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\Ir8a_Ir25a_ORCO_Gr63a\\\\video_2018-11-26T16_15_44_arena3',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\Ir8a_Ir25a_ORCO_Gr63a\\\\video_2019-01-07T13_25_24_arena4',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\Ir8a_Ir25a_ORCO_Gr63a\\\\video_2019-01-07T15_58_11_arena3',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\Ir8a_Ir25a_ORCO_Gr63a\\\\video_2019-01-08T15_26_26_arena3',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\Ir8a_Ir25a_ORCO_Gr63a\\\\video_2019-01-10T14_26_21_arena4',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\Ir8a_Ir25a_ORCO_Gr63a\\\\video_2019-01-10T15_20_27_arena1',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\Ir8a_Ir25a_ORCO_Gr63a\\\\video_2019-01-10T16_14_19_arena3',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\Ir8a_Ir25a_ORCO_Gr63a\\\\video_2019-01-11T14_09_38_arena3',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\Ir8a_Ir25a_ORCO_Gr63a\\\\video_2019-01-21T14_42_26_arena1',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\Ir8a_Ir25a_ORCO_Gr63a\\\\video_2019-01-21T16_33_48_arena4',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\Ir8a_Ir25a_ORCO_Gr63a\\\\video_2019-01-22T14_37_51_arena1',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\Ir8a_Ir25a_ORCO_Gr63a\\\\video_2019-01-23T14_43_15_arena3',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\Ir8a_Ir25a_ORCO_Gr63a\\\\video_2019-01-24T14_36_54_arena1',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\Ir8a_Ir25a_ORCO_Gr63a\\\\video_2019-01-25T13_48_17_arena4',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\Ir8a_Ir25a_ORCO_Gr63a\\\\video_2019-01-25T15_47_08_arena3',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\Ir8a_Ir25a_ORCO_Gr63a\\\\video_2019-01-25T16_37_11_arena2',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\Ir8a_Ir25a_ORCO_Gr63a\\\\video_2019-01-29T14_34_09_arena3',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\Ir8a_Ir25a_ORCO_Gr63a\\\\video_2019-01-29T16_16_40_arena1',\n",
       "  'E:\\\\Miguel\\\\PhD\\\\Results\\\\Competition\\\\DL\\\\Four-Arena Setup\\\\sensory_mutants\\\\processed\\\\Ir8a_Ir25a_ORCO_Gr63a\\\\video_2019-02-04T15_15_41_arena2']}"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Load all usable experiments for each condition.\n",
    "experiments = {condition: [] for condition in condition_order}\n",
    "\n",
    "for condition_path in conditions:\n",
    "    \n",
    "    condition = os.path.basename(condition_path)\n",
    "    print('\\t\\n', condition)\n",
    "    \n",
    "    for item in os.scandir(condition_path):\n",
    "        if item.is_dir() and item.name not in intruders:\n",
    "            \n",
    "            annotation_video = annotations.read(item.path + '.csv')\n",
    "            \n",
    "            try:\n",
    "                copulation = annotation_video[0].events[0]\n",
    "\n",
    "                # Filter out videos where copulation is interrupted.\n",
    "                copulation_end = copulation.time_interval[1]\n",
    "                if copulation_end==N_FRAMES:\n",
    "                    print('Copulation interrupted:', item.name)\n",
    "                    continue\n",
    "\n",
    "                # Filter out videos where copulation lasts less than 8 minutes.\n",
    "                copulation_duration = copulation.duration\n",
    "                if copulation_duration <= 8 * 60 * FPS:\n",
    "                    print('Copulation too short:', item.name)\n",
    "                    continue\n",
    "            \n",
    "            except IndexError:\n",
    "                continue\n",
    "            \n",
    "            experiments[condition].append(item.path)\n",
    "\n",
    "experiments"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Get distance walked per frame (in mm) from the start of each video until the end of copulation"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "DL\n",
      "video_2018-10-25T13_42_23_arena4\n",
      "video_2018-10-25T14_33_07_arena3\n",
      "video_2018-10-25T15_22_02_arena1\n",
      "video_2018-10-25T16_11_07_arena3\n",
      "video_2018-10-29T13_34_11_arena3\n",
      "video_2018-10-29T14_30_25_arena4\n",
      "video_2018-10-29T15_23_04_arena1\n",
      "video_2018-10-29T15_23_04_arena2\n",
      "video_2018-10-30T13_33_46_arena2\n",
      "video_2018-10-30T15_21_16_arena4\n",
      "video_2018-11-08T13_15_26_arena4\n",
      "video_2018-11-08T15_53_03_arena2\n",
      "video_2018-11-08T15_53_03_arena3\n",
      "video_2018-11-09T14_24_57_arena4\n",
      "video_2018-11-09T16_10_10_arena1\n",
      "video_2018-11-12T13_24_50_arena2\n",
      "video_2018-11-12T16_04_41_arena4\n",
      "video_2018-11-13T15_07_14_arena3\n",
      "video_2018-11-15T13_24_06_arena4\n",
      "video_2018-11-15T15_07_55_arena1\n",
      "video_2018-11-16T16_03_35_arena3\n",
      "video_2018-11-19T13_24_37_arena2\n",
      "video_2018-11-22T13_23_26_arena4\n",
      "video_2019-01-07T13_25_24_arena3\n",
      "video_2019-01-07T14_15_27_arena4\n",
      "video_2019-01-08T14_28_18_arena2\n",
      "video_2019-01-10T13_33_34_arena1\n",
      "video_2019-01-21T13_49_00_arena2\n",
      "video_2019-01-22T15_30_10_arena1\n",
      "video_2019-01-23T13_53_58_arena1\n",
      "video_2019-01-28T14_28_36_arena1\n",
      "video_2019-01-31T13_34_34_arena3\n",
      "video_2019-01-31T15_10_22_arena1\n",
      "video_2019-02-04T13_23_14_arena1\n",
      "video_2019-02-04T15_15_41_arena4\n",
      "video_2019-02-05T14_28_35_arena2\n",
      "video_2019-02-07T14_18_30_arena2\n",
      "video_2019-02-07T16_17_30_arena1\n",
      "video_2019-02-08T13_28_42_arena2\n",
      "video_2019-02-11T13_24_09_arena3\n",
      "video_2019-02-11T14_25_15_arena1\n",
      "video_2019-02-12T13_18_39_arena2\n",
      "video_2019-02-14T14_07_10_arena3\n",
      "video_2019-02-14T15_15_28_arena2\n",
      "video_2019-02-18T13_35_00_arena1\n",
      "video_2019-02-18T14_58_21_arena2\n",
      "video_2019-02-18T14_58_21_arena3\n",
      "video_2019-02-19T13_31_50_arena1\n",
      "video_2019-02-19T14_29_27_arena3\n",
      "video_2019-02-21T14_29_51_arena2\n",
      "video_2019-02-21T15_27_33_arena2\n",
      "video_2019-02-22T13_22_20_arena1\n",
      "video_2019-02-22T15_05_09_arena4\n",
      "video_2019-02-25T14_15_16_arena2\n",
      "video_2019-02-25T16_00_43_arena1\n",
      "video_2019-02-26T13_16_40_arena2\n",
      "video_2019-02-26T14_04_30_arena1\n",
      "PoxN1\n",
      "video_2018-11-05T14_25_33_arena1\n",
      "video_2018-11-08T14_54_53_arena3\n",
      "video_2018-11-09T13_32_43_arena2\n",
      "video_2018-11-09T15_15_47_arena4\n",
      "video_2018-11-09T16_10_10_arena3\n",
      "video_2018-11-12T14_18_04_arena3\n",
      "video_2018-11-12T15_11_17_arena1\n",
      "video_2018-11-13T13_20_38_arena2\n",
      "video_2018-11-13T14_12_04_arena4\n",
      "video_2018-11-13T15_59_40_arena2\n",
      "video_2018-11-15T13_24_06_arena3\n",
      "video_2018-11-15T14_14_38_arena2\n",
      "video_2018-11-16T14_16_30_arena1\n",
      "video_2018-11-16T15_13_19_arena2\n",
      "video_2018-11-19T15_13_59_arena2\n",
      "video_2018-11-19T16_07_25_arena4\n",
      "video_2018-11-22T15_13_22_arena3\n",
      "video_2018-11-23T13_16_41_arena3\n",
      "video_2018-11-23T14_06_32_arena2\n",
      "video_2018-11-23T15_02_48_arena4\n",
      "video_2018-11-26T14_23_16_arena3\n",
      "video_2019-01-07T13_25_24_arena2\n",
      "video_2019-01-10T15_20_27_arena3\n",
      "video_2019-01-21T14_42_26_arena3\n",
      "video_2019-01-24T13_41_39_arena2\n",
      "video_2019-01-25T14_42_54_arena4\n",
      "video_2019-01-25T16_37_11_arena1\n",
      "video_2019-01-28T13_29_02_arena2\n",
      "video_2019-01-28T16_23_38_arena1\n",
      "video_2019-01-29T13_47_57_arena2\n",
      "video_2019-01-31T14_23_50_arena4\n",
      "video_2019-02-11T15_21_44_arena3\n",
      "video_2019-02-12T15_09_30_arena4\n",
      "video_2019-02-14T13_20_25_arena1\n",
      "PoxN2\n",
      "video_2018-11-05T13_29_41_arena3\n",
      "video_2018-11-05T14_25_33_arena4\n",
      "video_2018-11-06T15_23_12_arena2\n",
      "video_2018-11-08T13_15_26_arena2\n",
      "video_2018-11-08T14_05_24_arena3\n",
      "video_2018-11-09T14_24_57_arena1\n",
      "video_2018-11-09T16_10_10_arena2\n",
      "video_2018-11-13T15_59_40_arena3\n",
      "video_2018-11-19T13_24_37_arena1\n",
      "video_2018-11-19T13_24_37_arena4\n",
      "video_2018-11-19T16_07_25_arena3\n",
      "video_2018-11-20T13_17_32_arena2\n",
      "video_2018-11-22T13_23_26_arena3\n",
      "video_2018-11-26T13_22_06_arena3\n",
      "video_2019-01-07T15_09_49_arena2\n",
      "video_2019-01-08T15_26_26_arena1\n",
      "video_2019-01-10T16_14_19_arena1\n",
      "video_2019-01-10T16_14_19_arena4\n",
      "video_2019-01-22T13_46_31_arena3\n",
      "video_2019-01-22T15_30_10_arena4\n",
      "video_2019-01-23T13_53_58_arena3\n",
      "video_2019-01-23T14_43_15_arena1\n",
      "video_2019-01-24T14_36_54_arena4\n",
      "video_2019-01-25T14_42_54_arena3\n",
      "video_2019-01-25T15_47_08_arena4\n",
      "video_2019-01-28T16_23_38_arena3\n",
      "video_2019-01-29T14_34_09_arena4\n",
      "video_2019-02-11T15_21_44_arena4\n",
      "video_2019-02-12T15_09_30_arena1\n",
      "video_2019-02-14T14_07_10_arena4\n",
      "aristaless\n",
      "video_2019-01-31T14_23_50_arena1\n",
      "video_2019-01-31T15_10_22_arena3\n",
      "video_2019-01-31T15_10_22_arena4\n",
      "video_2019-02-01T14_02_23_arena1\n",
      "video_2019-02-01T14_55_59_arena2\n",
      "video_2019-02-01T14_55_59_arena4\n",
      "video_2019-02-01T15_52_47_arena2\n",
      "video_2019-02-01T15_52_47_arena3\n",
      "video_2019-02-04T13_23_14_arena4\n",
      "video_2019-02-04T14_15_37_arena1\n",
      "video_2019-02-05T13_34_46_arena1\n",
      "video_2019-02-05T13_34_46_arena4\n",
      "video_2019-02-07T13_27_20_arena4\n",
      "video_2019-02-07T14_18_30_arena1\n",
      "video_2019-02-07T16_17_30_arena2\n",
      "video_2019-02-08T14_20_28_arena1\n",
      "video_2019-02-08T14_20_28_arena4\n",
      "video_2019-02-22T13_22_20_arena3\n",
      "video_2019-02-22T14_13_46_arena3\n",
      "video_2019-02-22T15_05_09_arena1\n",
      "video_2019-02-22T15_05_09_arena2\n",
      "video_2019-02-22T15_56_18_arena1\n",
      "video_2019-02-22T15_56_18_arena2\n",
      "video_2019-02-25T15_08_46_arena1\n",
      "video_2019-02-25T16_00_43_arena3\n",
      "video_2019-02-26T13_16_40_arena1\n",
      "video_2019-02-26T15_07_41_arena2\n",
      "NorpA\n",
      "video_2018-10-25T15_22_02_arena4\n",
      "video_2018-10-25T16_11_07_arena1\n",
      "video_2018-10-30T13_33_46_arena4\n",
      "video_2018-11-06T14_29_09_arena2\n",
      "video_2018-11-09T13_32_43_arena1\n",
      "video_2018-11-12T13_24_50_arena1\n",
      "video_2018-11-13T14_12_04_arena2\n",
      "video_2018-11-15T16_06_53_arena2\n",
      "video_2018-11-16T14_16_30_arena2\n",
      "video_2018-11-20T14_12_58_arena1\n",
      "video_2018-11-20T15_02_15_arena4\n",
      "video_2018-11-20T15_54_06_arena3\n",
      "video_2018-11-26T14_23_16_arena1\n",
      "video_2019-01-07T14_15_27_arena2\n",
      "video_2019-01-08T14_28_18_arena1\n",
      "video_2019-01-08T15_26_26_arena2\n",
      "video_2019-01-11T14_09_38_arena4\n",
      "video_2019-01-11T15_00_11_arena3\n",
      "video_2019-01-22T13_46_31_arena1\n",
      "video_2019-01-22T16_27_19_arena4\n",
      "video_2019-01-23T13_53_58_arena2\n",
      "video_2019-01-23T15_56_06_arena4\n",
      "video_2019-01-24T16_31_14_arena2\n",
      "video_2019-01-25T13_48_17_arena3\n",
      "video_2019-01-25T14_42_54_arena1\n",
      "video_2019-01-25T14_42_54_arena2\n",
      "video_2019-01-25T16_37_11_arena4\n",
      "video_2019-01-29T13_47_57_arena1\n",
      "video_2019-01-29T16_16_40_arena4\n",
      "video_2019-01-31T16_13_39_arena1\n",
      "video_2019-02-04T16_09_37_arena4\n",
      "video_2019-02-11T13_24_09_arena1\n",
      "video_2019-02-12T15_09_30_arena3\n",
      "Ir8a_Ir25a_ORCO_Gr63a\n",
      "video_2018-10-25T13_42_23_arena2\n",
      "video_2018-10-25T14_33_07_arena1\n",
      "video_2018-10-25T15_22_02_arena3\n",
      "video_2018-10-25T16_11_07_arena2\n",
      "video_2018-10-30T14_27_48_arena2\n",
      "video_2018-11-05T14_25_33_arena3\n",
      "video_2018-11-06T15_23_12_arena3\n",
      "video_2018-11-12T14_18_04_arena1\n",
      "video_2018-11-13T13_20_38_arena3\n",
      "video_2018-11-15T16_06_53_arena3\n",
      "video_2018-11-19T13_24_37_arena3\n",
      "video_2018-11-19T14_19_33_arena2\n",
      "video_2018-11-20T13_17_32_arena1\n",
      "video_2018-11-23T15_02_48_arena3\n",
      "video_2018-11-26T13_22_06_arena1\n",
      "video_2018-11-26T14_23_16_arena2\n",
      "video_2018-11-26T16_15_44_arena3\n",
      "video_2019-01-07T13_25_24_arena4\n",
      "video_2019-01-07T15_58_11_arena3\n",
      "video_2019-01-08T15_26_26_arena3\n",
      "video_2019-01-10T14_26_21_arena4\n",
      "video_2019-01-10T15_20_27_arena1\n",
      "video_2019-01-10T16_14_19_arena3\n",
      "video_2019-01-11T14_09_38_arena3\n",
      "video_2019-01-21T14_42_26_arena1\n",
      "video_2019-01-21T16_33_48_arena4\n",
      "video_2019-01-22T14_37_51_arena1\n",
      "video_2019-01-23T14_43_15_arena3\n",
      "video_2019-01-24T14_36_54_arena1\n",
      "video_2019-01-25T13_48_17_arena4\n",
      "video_2019-01-25T15_47_08_arena3\n",
      "video_2019-01-25T16_37_11_arena2\n",
      "video_2019-01-29T14_34_09_arena3\n",
      "video_2019-01-29T16_16_40_arena1\n",
      "video_2019-02-04T15_15_41_arena2\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>pos_x</th>\n",
       "      <th>pos_y</th>\n",
       "      <th>vel</th>\n",
       "      <th>copulation</th>\n",
       "      <th>condition</th>\n",
       "      <th>experiment</th>\n",
       "      <th>has_aggression</th>\n",
       "      <th>dist_walked_mm</th>\n",
       "      <th>dist_walked_meters</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>98.018</td>\n",
       "      <td>132.320</td>\n",
       "      <td>0.0000</td>\n",
       "      <td>before</td>\n",
       "      <td>DL</td>\n",
       "      <td>video_2018-10-25T13_42_23_arena4</td>\n",
       "      <td>True</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>98.018</td>\n",
       "      <td>132.320</td>\n",
       "      <td>0.0000</td>\n",
       "      <td>before</td>\n",
       "      <td>DL</td>\n",
       "      <td>video_2018-10-25T13_42_23_arena4</td>\n",
       "      <td>True</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>98.018</td>\n",
       "      <td>132.320</td>\n",
       "      <td>2.2617</td>\n",
       "      <td>before</td>\n",
       "      <td>DL</td>\n",
       "      <td>video_2018-10-25T13_42_23_arena4</td>\n",
       "      <td>True</td>\n",
       "      <td>0.037695</td>\n",
       "      <td>0.000038</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>99.082</td>\n",
       "      <td>133.150</td>\n",
       "      <td>7.2989</td>\n",
       "      <td>before</td>\n",
       "      <td>DL</td>\n",
       "      <td>video_2018-10-25T13_42_23_arena4</td>\n",
       "      <td>True</td>\n",
       "      <td>0.121648</td>\n",
       "      <td>0.000122</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>99.947</td>\n",
       "      <td>134.660</td>\n",
       "      <td>9.1788</td>\n",
       "      <td>before</td>\n",
       "      <td>DL</td>\n",
       "      <td>video_2018-10-25T13_42_23_arena4</td>\n",
       "      <td>True</td>\n",
       "      <td>0.152980</td>\n",
       "      <td>0.000153</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75299</th>\n",
       "      <td>135.460</td>\n",
       "      <td>88.588</td>\n",
       "      <td>0.0000</td>\n",
       "      <td>during</td>\n",
       "      <td>Ir8a_Ir25a_ORCO_Gr63a</td>\n",
       "      <td>video_2019-02-04T15_15_41_arena2</td>\n",
       "      <td>False</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75300</th>\n",
       "      <td>135.460</td>\n",
       "      <td>88.588</td>\n",
       "      <td>0.0000</td>\n",
       "      <td>during</td>\n",
       "      <td>Ir8a_Ir25a_ORCO_Gr63a</td>\n",
       "      <td>video_2019-02-04T15_15_41_arena2</td>\n",
       "      <td>False</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75301</th>\n",
       "      <td>135.460</td>\n",
       "      <td>88.588</td>\n",
       "      <td>0.0000</td>\n",
       "      <td>during</td>\n",
       "      <td>Ir8a_Ir25a_ORCO_Gr63a</td>\n",
       "      <td>video_2019-02-04T15_15_41_arena2</td>\n",
       "      <td>False</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75302</th>\n",
       "      <td>135.460</td>\n",
       "      <td>88.588</td>\n",
       "      <td>0.0000</td>\n",
       "      <td>during</td>\n",
       "      <td>Ir8a_Ir25a_ORCO_Gr63a</td>\n",
       "      <td>video_2019-02-04T15_15_41_arena2</td>\n",
       "      <td>False</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75303</th>\n",
       "      <td>135.460</td>\n",
       "      <td>88.588</td>\n",
       "      <td>0.0000</td>\n",
       "      <td>during</td>\n",
       "      <td>Ir8a_Ir25a_ORCO_Gr63a</td>\n",
       "      <td>video_2019-02-04T15_15_41_arena2</td>\n",
       "      <td>False</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>18097785 rows × 9 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "         pos_x    pos_y     vel copulation              condition  \\\n",
       "0       98.018  132.320  0.0000     before                     DL   \n",
       "1       98.018  132.320  0.0000     before                     DL   \n",
       "2       98.018  132.320  2.2617     before                     DL   \n",
       "3       99.082  133.150  7.2989     before                     DL   \n",
       "4       99.947  134.660  9.1788     before                     DL   \n",
       "...        ...      ...     ...        ...                    ...   \n",
       "75299  135.460   88.588  0.0000     during  Ir8a_Ir25a_ORCO_Gr63a   \n",
       "75300  135.460   88.588  0.0000     during  Ir8a_Ir25a_ORCO_Gr63a   \n",
       "75301  135.460   88.588  0.0000     during  Ir8a_Ir25a_ORCO_Gr63a   \n",
       "75302  135.460   88.588  0.0000     during  Ir8a_Ir25a_ORCO_Gr63a   \n",
       "75303  135.460   88.588  0.0000     during  Ir8a_Ir25a_ORCO_Gr63a   \n",
       "\n",
       "                             experiment  has_aggression  dist_walked_mm  \\\n",
       "0      video_2018-10-25T13_42_23_arena4            True        0.000000   \n",
       "1      video_2018-10-25T13_42_23_arena4            True        0.000000   \n",
       "2      video_2018-10-25T13_42_23_arena4            True        0.037695   \n",
       "3      video_2018-10-25T13_42_23_arena4            True        0.121648   \n",
       "4      video_2018-10-25T13_42_23_arena4            True        0.152980   \n",
       "...                                 ...             ...             ...   \n",
       "75299  video_2019-02-04T15_15_41_arena2           False        0.000000   \n",
       "75300  video_2019-02-04T15_15_41_arena2           False        0.000000   \n",
       "75301  video_2019-02-04T15_15_41_arena2           False        0.000000   \n",
       "75302  video_2019-02-04T15_15_41_arena2           False        0.000000   \n",
       "75303  video_2019-02-04T15_15_41_arena2           False        0.000000   \n",
       "\n",
       "       dist_walked_meters  \n",
       "0                0.000000  \n",
       "1                0.000000  \n",
       "2                0.000038  \n",
       "3                0.000122  \n",
       "4                0.000153  \n",
       "...                   ...  \n",
       "75299            0.000000  \n",
       "75300            0.000000  \n",
       "75301            0.000000  \n",
       "75302            0.000000  \n",
       "75303            0.000000  \n",
       "\n",
       "[18097785 rows x 9 columns]"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "total_distance = []\n",
    "distance_during_copulation = {condition: {} for condition in experiments.keys()}\n",
    "distance_before_copulation = {condition: {} for condition in experiments.keys()}\n",
    "distance_df = pd.DataFrame()\n",
    "\n",
    "# Set features to extract from trackfeat files.\n",
    "features = ['pos x', 'pos y', 'vel']\n",
    "\n",
    "for condition in experiments.keys():\n",
    "    \n",
    "    print(condition)\n",
    "    \n",
    "    for experiment_path in experiments[condition]:\n",
    "        \n",
    "        control = True if condition == 'DL' else False\n",
    "\n",
    "        aggression_df, mating_df, copulation_time, aggression_timepoints = helpers.process_track_data(experiment_path,\n",
    "                                                                                                      include_aggression_only=False,\n",
    "                                                                                                      fly_id=2,\n",
    "                                                                                                      is_control=control,\n",
    "                                                                                                      trackfeat_columns=features,\n",
    "                                                                                                      suppress=True\n",
    "                                                                                                     )\n",
    "        if aggression_df is None or mating_df is None:\n",
    "            continue\n",
    "\n",
    "        experiment = os.path.basename(experiment_path)\n",
    "        \n",
    "        print(experiment)\n",
    "\n",
    "        # Slice the aggressive female's data only up until end of copulation - we do not care about what happens after that.\n",
    "        copulation_start = copulation_time[0]\n",
    "        copulation_end = copulation_time[1]\n",
    "        aggression_slice = aggression_df.loc[:copulation_end-1, :].copy()\n",
    "        aggression_slice.fillna(method='ffill', inplace=True)\n",
    "        aggression_slice = aggression_slice[aggression_slice['vel'] < 20]  # Filter out jumps.\n",
    "\n",
    "        # Categorize frames from before copulation or duting copulation so we can later compare these two moments.\n",
    "        aggression_slice['copulation'] = aggression_slice.index < copulation_start\n",
    "        aggression_slice['copulation'] = aggression_slice['copulation'].map({True: 'before', False: 'during'})\n",
    "        aggression_slice['condition'] = condition\n",
    "        aggression_slice['experiment'] = experiment\n",
    "        aggression_slice['has_aggression'] = True if len(aggression_timepoints) > 0 else False\n",
    "\n",
    "        aggression_during_copulation = aggression_df.loc[copulation_start:copulation_end-1, :].copy()\n",
    "        aggression_during_copulation.fillna(method='ffill', inplace=True)\n",
    "        aggression_before_copulation = aggression_df.loc[:copulation_start-1, :].copy()\n",
    "        aggression_before_copulation.fillna(method='ffill', inplace=True)\n",
    "\n",
    "        # Calculate distance walked per frame based on the velocity column.\n",
    "        aggression_slice['dist_walked_mm'] = (aggression_slice['vel'] / 60)\n",
    "        aggression_slice['dist_walked_meters'] = (aggression_slice['vel'] / 60 / 1000)\n",
    "        aggression_during_copulation['dist_walked_mm'] = (aggression_during_copulation['vel'] / 60)\n",
    "        aggression_before_copulation['dist_walked_mm'] = (aggression_before_copulation['vel'] / 60)\n",
    "        \n",
    "        total_distance.append(sum(aggression_slice['dist_walked_mm']))\n",
    "        distance_during_copulation[condition][experiment] = sum(aggression_during_copulation['dist_walked_mm'])\n",
    "        distance_before_copulation[condition][experiment] = sum(aggression_before_copulation['dist_walked_mm'])\n",
    "\n",
    "        distance_df = pd.concat([distance_df, aggression_slice], axis=0)\n",
    "\n",
    "distance_df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>condition</th>\n",
       "      <th>experiment</th>\n",
       "      <th>pos_x</th>\n",
       "      <th>pos_y</th>\n",
       "      <th>vel</th>\n",
       "      <th>has_aggression</th>\n",
       "      <th>dist_walked_mm</th>\n",
       "      <th>dist_walked_meters</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>DL</td>\n",
       "      <td>video_2018-10-25T13_42_23_arena4</td>\n",
       "      <td>1.387434e+07</td>\n",
       "      <td>1.364626e+07</td>\n",
       "      <td>322198.940106</td>\n",
       "      <td>64320.0</td>\n",
       "      <td>5369.982335</td>\n",
       "      <td>5.369982</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>DL</td>\n",
       "      <td>video_2018-10-25T14_33_07_arena3</td>\n",
       "      <td>1.776195e+07</td>\n",
       "      <td>1.833364e+07</td>\n",
       "      <td>485629.087139</td>\n",
       "      <td>0.0</td>\n",
       "      <td>8093.818119</td>\n",
       "      <td>8.093818</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>DL</td>\n",
       "      <td>video_2018-10-25T15_22_02_arena1</td>\n",
       "      <td>1.403257e+07</td>\n",
       "      <td>1.890168e+07</td>\n",
       "      <td>77346.274412</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1289.104574</td>\n",
       "      <td>1.289105</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>DL</td>\n",
       "      <td>video_2018-10-25T16_11_07_arena3</td>\n",
       "      <td>1.693274e+07</td>\n",
       "      <td>1.741137e+07</td>\n",
       "      <td>553157.005706</td>\n",
       "      <td>94178.0</td>\n",
       "      <td>9219.283428</td>\n",
       "      <td>9.219283</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>DL</td>\n",
       "      <td>video_2018-10-29T13_34_11_arena3</td>\n",
       "      <td>1.131071e+07</td>\n",
       "      <td>1.223045e+07</td>\n",
       "      <td>452645.157846</td>\n",
       "      <td>66009.0</td>\n",
       "      <td>7544.085964</td>\n",
       "      <td>7.544086</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>211</th>\n",
       "      <td>aristaless</td>\n",
       "      <td>video_2019-02-22T15_56_18_arena2</td>\n",
       "      <td>2.330376e+07</td>\n",
       "      <td>1.806991e+07</td>\n",
       "      <td>643838.919901</td>\n",
       "      <td>112061.0</td>\n",
       "      <td>10730.648665</td>\n",
       "      <td>10.730649</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>212</th>\n",
       "      <td>aristaless</td>\n",
       "      <td>video_2019-02-25T15_08_46_arena1</td>\n",
       "      <td>1.851807e+07</td>\n",
       "      <td>2.021032e+07</td>\n",
       "      <td>660468.000170</td>\n",
       "      <td>98287.0</td>\n",
       "      <td>11007.800003</td>\n",
       "      <td>11.007800</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>213</th>\n",
       "      <td>aristaless</td>\n",
       "      <td>video_2019-02-25T16_00_43_arena3</td>\n",
       "      <td>1.275105e+07</td>\n",
       "      <td>1.663864e+07</td>\n",
       "      <td>394459.000013</td>\n",
       "      <td>71232.0</td>\n",
       "      <td>6574.316667</td>\n",
       "      <td>6.574317</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>214</th>\n",
       "      <td>aristaless</td>\n",
       "      <td>video_2019-02-26T13_16_40_arena1</td>\n",
       "      <td>1.175290e+07</td>\n",
       "      <td>1.281915e+07</td>\n",
       "      <td>463788.563988</td>\n",
       "      <td>60155.0</td>\n",
       "      <td>7729.809400</td>\n",
       "      <td>7.729809</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>215</th>\n",
       "      <td>aristaless</td>\n",
       "      <td>video_2019-02-26T15_07_41_arena2</td>\n",
       "      <td>1.269791e+07</td>\n",
       "      <td>1.233379e+07</td>\n",
       "      <td>353603.261520</td>\n",
       "      <td>64832.0</td>\n",
       "      <td>5893.387692</td>\n",
       "      <td>5.893388</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>216 rows × 8 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "      condition                        experiment         pos_x         pos_y  \\\n",
       "0            DL  video_2018-10-25T13_42_23_arena4  1.387434e+07  1.364626e+07   \n",
       "1            DL  video_2018-10-25T14_33_07_arena3  1.776195e+07  1.833364e+07   \n",
       "2            DL  video_2018-10-25T15_22_02_arena1  1.403257e+07  1.890168e+07   \n",
       "3            DL  video_2018-10-25T16_11_07_arena3  1.693274e+07  1.741137e+07   \n",
       "4            DL  video_2018-10-29T13_34_11_arena3  1.131071e+07  1.223045e+07   \n",
       "..          ...                               ...           ...           ...   \n",
       "211  aristaless  video_2019-02-22T15_56_18_arena2  2.330376e+07  1.806991e+07   \n",
       "212  aristaless  video_2019-02-25T15_08_46_arena1  1.851807e+07  2.021032e+07   \n",
       "213  aristaless  video_2019-02-25T16_00_43_arena3  1.275105e+07  1.663864e+07   \n",
       "214  aristaless  video_2019-02-26T13_16_40_arena1  1.175290e+07  1.281915e+07   \n",
       "215  aristaless  video_2019-02-26T15_07_41_arena2  1.269791e+07  1.233379e+07   \n",
       "\n",
       "               vel  has_aggression  dist_walked_mm  dist_walked_meters  \n",
       "0    322198.940106         64320.0     5369.982335            5.369982  \n",
       "1    485629.087139             0.0     8093.818119            8.093818  \n",
       "2     77346.274412             0.0     1289.104574            1.289105  \n",
       "3    553157.005706         94178.0     9219.283428            9.219283  \n",
       "4    452645.157846         66009.0     7544.085964            7.544086  \n",
       "..             ...             ...             ...                 ...  \n",
       "211  643838.919901        112061.0    10730.648665           10.730649  \n",
       "212  660468.000170         98287.0    11007.800003           11.007800  \n",
       "213  394459.000013         71232.0     6574.316667            6.574317  \n",
       "214  463788.563988         60155.0     7729.809400            7.729809  \n",
       "215  353603.261520         64832.0     5893.387692            5.893388  \n",
       "\n",
       "[216 rows x 8 columns]"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Sum distance walked during all frames for each video and convert that to meters.\n",
    "experiments_grouped = distance_df.groupby(by=['condition', 'experiment'], as_index=False).sum()\n",
    "experiments_grouped"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## What is the total distance walked by females from the start of experiment until the end of copulation?"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Statistics"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "\t PoxN1\n",
      "Shapiro's Test: group 1 IS normally distributed.\n",
      "D'Agostino's Test: group 1 IS normally distributed.\n",
      "Shapiro's Test: group 2 IS normally distributed.\n",
      "D'Agostino's Test: group 2 IS normally distributed.\n",
      "Bartlett's Test for normally distribted samples:\n",
      "  p-value = 0.050713\n",
      "  All groups were sampled from populations with IDENTICAL variances.\n",
      "\n",
      "Independent measures (two sample) t-test p-value: 0.5084852453731747 \n",
      "\n",
      "\n",
      "\t PoxN2\n",
      "Shapiro's Test: group 1 IS normally distributed.\n",
      "D'Agostino's Test: group 1 IS normally distributed.\n",
      "Shapiro's Test: group 2 IS NOT normally distributed.\n",
      "D'Agostino's Test: group 2 IS NOT normally distributed.\n",
      "Levene's Test for non-normally distributed samples:\n",
      "  p-value = 0.329534\n",
      "  All groups were sampled from populations with IDENTICAL variances.\n",
      "\n",
      "Mann-Whitney p-value: 0.3227958809671315 \n",
      "\n",
      "\n",
      "\t aristaless\n",
      "Shapiro's Test: group 1 IS normally distributed.\n",
      "D'Agostino's Test: group 1 IS normally distributed.\n",
      "Shapiro's Test: group 2 IS normally distributed.\n",
      "D'Agostino's Test: group 2 IS normally distributed.\n",
      "Bartlett's Test for normally distribted samples:\n",
      "  p-value = 0.384054\n",
      "  All groups were sampled from populations with IDENTICAL variances.\n",
      "\n",
      "Independent measures (two sample) t-test p-value: 0.9000148287873988 \n",
      "\n",
      "\n",
      "\t NorpA\n",
      "Shapiro's Test: group 1 IS normally distributed.\n",
      "D'Agostino's Test: group 1 IS normally distributed.\n",
      "Shapiro's Test: group 2 IS normally distributed.\n",
      "D'Agostino's Test: group 2 IS normally distributed.\n",
      "Bartlett's Test for normally distribted samples:\n",
      "  p-value = 0.560332\n",
      "  All groups were sampled from populations with IDENTICAL variances.\n",
      "\n",
      "Independent measures (two sample) t-test p-value: 0.67838836025507 \n",
      "\n",
      "\n",
      "\t Ir8a_Ir25a_ORCO_Gr63a\n",
      "Shapiro's Test: group 1 IS normally distributed.\n",
      "D'Agostino's Test: group 1 IS normally distributed.\n",
      "Shapiro's Test: group 2 IS normally distributed.\n",
      "D'Agostino's Test: group 2 IS normally distributed.\n",
      "Bartlett's Test for normally distribted samples:\n",
      "  p-value = 0.714355\n",
      "  All groups were sampled from populations with IDENTICAL variances.\n",
      "\n",
      "Independent measures (two sample) t-test p-value: 0.6778928524049779 \n",
      "\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "{'PoxN1': 0.5084852453731747,\n",
       " 'PoxN2': 0.3227958809671315,\n",
       " 'aristaless': 0.9000148287873988,\n",
       " 'NorpA': 0.67838836025507,\n",
       " 'Ir8a_Ir25a_ORCO_Gr63a': 0.6778928524049779}"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dist_walked_pvalues = {}\n",
    "\n",
    "control =  experiments_grouped.query('condition==\"DL\"')['dist_walked_meters']\n",
    "\n",
    "for condition in condition_order[1:]:\n",
    "    \n",
    "    print('\\n\\t', condition)\n",
    "    \n",
    "    try:\n",
    "        test = experiments_grouped.query('condition==\"' + condition + '\"')['dist_walked_meters']\n",
    "\n",
    "        temp_values = {'control': control, 'test': test}\n",
    "\n",
    "        pvalues = helpers.run_statistics(temp_values)\n",
    "        dist_walked_pvalues[condition] = pvalues\n",
    "        \n",
    "    except ValueError as error:\n",
    "        print(error)\n",
    "    \n",
    "dist_walked_pvalues"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Bonferroni Correction\n",
      "---------------------\n",
      "\n",
      "\tOriginal Values:\n",
      " {'PoxN1': 0.5084852453731747, 'PoxN2': 0.3227958809671315, 'aristaless': 0.9000148287873988, 'NorpA': 0.67838836025507, 'Ir8a_Ir25a_ORCO_Gr63a': 0.6778928524049779}\n",
      "\n",
      "\tCorrected Values:\n",
      " {'PoxN1': 1.0, 'PoxN2': 1.0, 'aristaless': 1.0, 'NorpA': 1.0, 'Ir8a_Ir25a_ORCO_Gr63a': 1.0}\n"
     ]
    }
   ],
   "source": [
    "# Bonferroni corretction for multiple comparisons.\n",
    "title = 'Bonferroni Correction'\n",
    "print(title)\n",
    "print('-'*len(title))\n",
    "\n",
    "# Show uncorrected values.\n",
    "print('\\n\\tOriginal Values:\\n', dist_walked_pvalues)\n",
    "\n",
    "# Apply the bonferroni correction for multiple comparisons.\n",
    "dist_walked_multi_comp_correction = multipletests(pvals=list(dist_walked_pvalues.values()), alpha=0.05, method='bonferroni')[1]\n",
    "\n",
    "# Transform the correction results into a dictionary.\n",
    "corrected_dist_walked_pvalues = dict(zip(list(dist_walked_pvalues.keys()), dist_walked_multi_comp_correction))\n",
    "\n",
    "# Show corrected values.\n",
    "print('\\n\\tCorrected Values:\\n', corrected_dist_walked_pvalues)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Effect Size"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "PoxN1\n",
      "Vestigial Effect: -0.07627607338399213 \n",
      "\n",
      "PoxN2\n",
      "Vestigial Effect: -0.05444135242665124 \n",
      "\n",
      "aristaless\n",
      "Vestigial Effect: -0.14811411323005771 \n",
      "\n",
      "NorpA\n",
      "Vestigial Effect: -0.18575404868690373 \n",
      "\n",
      "Ir8a_Ir25a_ORCO_Gr63a\n",
      "Vestigial Effect: 0.008509792646322508 \n",
      "\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "{'PoxN1': -0.07627607338399213,\n",
       " 'PoxN2': -0.05444135242665124,\n",
       " 'aristaless': -0.14811411323005771,\n",
       " 'NorpA': -0.18575404868690373,\n",
       " 'Ir8a_Ir25a_ORCO_Gr63a': 0.008509792646322508}"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Calculate effect size.\n",
    "effect_sizes = {condition: 0 for condition in condition_order[1:]}\n",
    "\n",
    "control = experiments_grouped.query('condition==\"DL\"')['dist_walked_meters']\n",
    "\n",
    "for condition in condition_order[1:]:\n",
    "    \n",
    "    print(condition)\n",
    "    \n",
    "    test = experiments_grouped.query('condition==\"' + condition + '\"')['dist_walked_meters']\n",
    "\n",
    "    median_diff = helpers.get_effect_size(control, test, method='median_diff')\n",
    "    \n",
    "    effect_sizes[condition] = median_diff\n",
    "    \n",
    "effect_sizes"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Plot"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 540x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Initialize figure.\n",
    "n_conditions = experiments_grouped['condition'].nunique()\n",
    "figure, axis = plt.subplots(figsize=(1.25*n_conditions, 4))\n",
    "\n",
    "# Draw the oxplot.\n",
    "sns.boxplot(x='condition',\n",
    "            y='dist_walked_meters',\n",
    "            data=experiments_grouped,\n",
    "            order=condition_order,\n",
    "            palette=['steelblue', '#0B4619', '#116530', '#FFE652', '#F0E9D2', '#533535'],\n",
    "            width=0.6,\n",
    "            showfliers=False,\n",
    "            boxprops={'edgecolor': INK},\n",
    "            capprops={'color': INK},\n",
    "            medianprops={'color': INK},\n",
    "            whiskerprops={'color': INK}\n",
    "           )\n",
    "\n",
    "# Draw the swarmplot.\n",
    "sns.swarmplot(x='condition',\n",
    "              y='dist_walked_meters',\n",
    "              data=experiments_grouped,\n",
    "              order=condition_order,\n",
    "              palette=['steelblue', '#0B4619', '#116530', '#FFE652', '#F0E9D2', '#533535'],\n",
    "              edgecolor=INK,\n",
    "              linewidth=1\n",
    "             )\n",
    "\n",
    "# Figure and axes formatting.\n",
    "axis.set_xlabel('')\n",
    "axis.set_xticklabels([''])\n",
    "axis.set_ylabel('Distance (meters)')\n",
    "axis.set_ylim(0, 20)\n",
    "axis.set_yticks(range(0, 20+1, 5))\n",
    "\n",
    "# Table definition.\n",
    "row1 = [str(experiments_grouped.query('condition==\"'+condition+'\"').shape[0]) for condition in condition_order]\n",
    "row2_labels = ['WT', '${Poxn}$1', '${Poxn}$2', 'aristaless', '${norpA}$', '${IR8a\\N{SUPERSCRIPT ONE}, IR25a\\N{SUPERSCRIPT TWO}}$,\\n${GR63a\\N{SUPERSCRIPT ONE}, ORCO\\N{SUPERSCRIPT ONE}}$']\n",
    "row2_labels = [label + '\\n' for label in row2_labels]\n",
    "row2 = row2_labels\n",
    "cell_text = np.array([row1, row2])\n",
    "\n",
    "row_labels = ['n =', '']\n",
    "summary_table = axis.table(cellText= cell_text,\n",
    "                           cellLoc='center',\n",
    "                           rowLabels=row_labels,\n",
    "                           rowLoc='center',\n",
    "                           colLoc='center'\n",
    "                          )\n",
    "\n",
    "summary_table.auto_set_font_size(False)\n",
    "summary_table.set_fontsize(11)\n",
    "\n",
    "properties = summary_table.properties()\n",
    "table_cells = properties['children']\n",
    "for cell in table_cells:\n",
    "    cell.set_height(0.12)\n",
    "    cell.set_alpha(0)\n",
    "    \n",
    "# Draw statistical results.\n",
    "for p, condition in enumerate(condition_order[1:]):\n",
    "    sig_height = 6 if (corrected_dist_walked_pvalues.get(condition, 'NaN') == 'NaN') or (corrected_dist_walked_pvalues.get(condition, 'NaN') >= 0.05) else 2\n",
    "    helpers.plot_stattest_result(ax=axis,\n",
    "                                 x1=p+1,\n",
    "                                 x2=p+1,\n",
    "                                 p_value=corrected_dist_walked_pvalues.get(condition, 'NaN'),\n",
    "                                 y=18,\n",
    "                                 ticksize=0,\n",
    "                                 xytext=(0,sig_height),\n",
    "                                 fontsize=13,\n",
    "                                 color=INK,\n",
    "                                 connector_color=INK\n",
    "                                )\n",
    "\n",
    "# Savin parameters.\n",
    "filename = 'distance_walked_start_video_end_copulation_sensory_mutants'\n",
    "plt.savefig(os.path.join(savepath, filename))\n",
    "\n",
    "plt.show()\n",
    "plt.close()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.6"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": false
  },
  "varInspector": {
   "cols": {
    "lenName": 16,
    "lenType": 16,
    "lenVar": 40
   },
   "kernels_config": {
    "python": {
     "delete_cmd_postfix": "",
     "delete_cmd_prefix": "del ",
     "library": "var_list.py",
     "varRefreshCmd": "print(var_dic_list())"
    },
    "r": {
     "delete_cmd_postfix": ") ",
     "delete_cmd_prefix": "rm(",
     "library": "var_list.r",
     "varRefreshCmd": "cat(var_dic_list()) "
    }
   },
   "types_to_exclude": [
    "module",
    "function",
    "builtin_function_or_method",
    "instance",
    "_Feature"
   ],
   "window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
